COMMONVIEW VS. XVT April 24, 1989 1st Edition Marc J. Rochkind API Ltd. CompuServe 75765,1233 CommonView(tm) and XVT(tm) are C-callable high-level libraries that allow you to write portable, graphical, interactive applications across several window systems. Further information about them is available from their vendors: CommonView: ImageSoft Inc. 2 Haven Ave. Port Washington, New York 11050 (800) 245-8840, (516) 767-2233 (516) 767-9067 (FAX) XVT: API Ltd. Box 17665 Boulder, CO 80308 (303) 443-4223 (303) 443-0969 (FAX) This document contains a detailed comparison chart that lists XVT and CommonView features in these categories: General Caret Clipboard Controls Cursor Diagnostics Dialogs Drawing Editing Events Files Fonts Help Memory Menus Printing Resources Windows NOTES: 1. The chart was prepared by the developer of XVT, and while he has attempted to be honest and objective, unintentional errors for or against CommonView may have been made. If readers point these out to him they will be corrected in future editions of this chart. 2. Only vendor-supplied features that are portable between the window systems that the package claims to support were considered. (Both CommonView and XVT are extensible by the user so that most unsupported window-system features can be accessed, but at the cost of portability.) 3. Only features in the currently-shipped products were considered. The version numbers are 1.2 of XVT and 1.2E of CommonView. (Both products are being continuously enhanced, and additional implementations for both are being developed.) 4. Most of the CommonView information was gleaned from its manual and a few cursory tests. Some data was obtained by calling ImageSoft. 5. The reader is encouraged to mark the features that are absolutely crucial to his or her application and verify their presence or absence with the vendors. Readers should also check on the availability of versions for the Mac, PM, and the X Window System. 6. An X next to a feature means that it's in XVT, a C means that it's in CommonView, and a dash in either column means that it's missing from that system. In a few cases a ? appears, indicating that the author doesn't know. General Memory models: Medium model under Windows X C Large model under Windows - - Medium model under PM - C Large model under PM - - Object-oriented interface - C Callable from C++ X C Callable without C++ X - Callable fron non-C languages (e.g., Pascal) X - Compile apps in <512K (e.g., OS/2 compat. box) X - Available now for Windows X C Available now for PM - C Available now for Mac X - One-year warranty against software defects X - One-year free updates and maintenance X ? Manual available separately X - Caret Position caret in window X C Turn caret on X C Turn caret off X - Caret automatically sized for current font X - Line caret X C Bitmap caret - C Get/set blink time - C Clipboard (external to app) Standard text format X - Standard picture format X - Application formats X - Transfer data to and from clipboard X - Controls Can appear in dialogs X C Can appear in windows - C Control manipulation Show/hide X C Enable/disable X - Move - C Get position - C Set size - C Get size - C Set focus, edit controls X C Set focus, other controls - C Control types Push button controls X C Radio button controls X C Check box controls X C Check/uncheck checkboxes X C Editable text X C Select text in edit control X C Static text X C Scroll bars X C Get position - C Set position X C Get range - C Set range X C Set units - C Static pictures and icons X C List boxes X C Multiple selections X - Single selections X C Unselectable (read only) X C Clear all X - Count all X C Get all X - Count selected items X - Get selected items X C Test item for selection X - Set selection X C Add items X C Delete items X C Suspend/resume updates X - Cursor Set shape for window X C Predefined shapes X C Automatically-cleared waiting cursor X - Trap cursor during drag X - Obscure cursor until moved X - Hide/show cursor - C Get/set cursor position - C Confine cursor to rectangle - C Diagnostics Assertion errors displayed on screen X - Debugging output on log file X - Emergency message box X C Dialogs Modal dialogs X C Modeless dialogs X - Predefined yes/no/cancel dialog X - Predefined message dialog X C Predefined string-entry dialog X - Show/hide dialog box X C Destroy dialog box X C Ring bell X - Drawing Graphic shapes: Arcs X - Bitmaps Access bits - C Draw - - Icons X C Lines X C Lines with arrowheads X - Ovals X - Pictures Encapsulate graphics into picture X - Draw picture X - Read/write picture X - Transfer picture to/from clipboard X - Pie sections X - Polygons X - Polylines X - Rectangles X C Regions - - Rounded rectangles X - Text X C Drawing Tools: Pens, solid X C Pens, dashed - C Brushes, solid X C Brushes, hatched X C Drawing mode (copy and XOR) X - Font X C Set tool X C Get current tool X - Set clipping rectangle X - Set clipping region - - Scroll rectangle X - Rectangle operations: Initialize X C Test for included point X C Test for empty X - Offset X - Set to empty X - Union - C Color - C Limit drawing to update rectangle X C Editing Place edit box in window - C Get line length - C Test for modification - C Get/set selection - C Replace selection - C Delete selection - C Set limit - C Events Types of events Mouse down X C Mouse up X C Mouse move X C Mouse drag - C Mouse double click X C Multiple mouse buttons - C Key down - C Key up - C Key entered X C Update X C Activate/deactivate X C Close X C Vertical/horizontal scroll bar X C Menu command X C Menu initialization - C Menu selection - C Resize window X C Window move - C Window initialization - C Font selection X - Query quit X C Control action - C Uncaught events automatically handled X C Terminate execution from anywhere X C Event handling while app is busy X - Files Predefined open-file dialog X C Predefine save-file dialog X - Read to/write from global memory X - Manipulate directories portably X - Get list of files by wildcard X - Get selected files at startup X C Fonts Automatic portable font menu X - App-selectable font, limited X C App-selectable font, flexible - C Set font style X C Set font size X C Measure text width X C Get font ascent, descent, leading X - Help Built-in modeless help system X - Customizable by app programmer X - Memory Access to global heap X C Far-pointer string functions X - Far-pointer memory functions X - Menus Check/uncheck item X C Enable/disable item X C Change text of item X - Supports accelerators X C Add item - C Delete item - C Bitmap items - C Change menu - C Menus on several windows - C Printing Support for page setup dialog X - Open print window X - Banding support X - Automatic printing-abort dialog box X - Resources Retrieve strings X C Define dialogs X C Define menus X C Define accelerators X C Windows Document windows automatically obey multiple document interface X ? Optional scroll bars X C Disable scroll bars X C Plain border windows X C Double border windows X C Child windows to arbitrary depth - C Hide/show window X - Get client rectangle X C Get outer window rectangle - C Test for iconic window - C Test for completely visible - C Test for zoomed - C Get type of window X - Set title of window X - Invalidate rectangle X - Invalidate entire window X C Set front (active) window X - Get front window X - Get list of windows X - Convert local coordinates to global X - Move window from app X C Resize window from app X C Window scroll bars Get position - C Set position X C Get range - C Set range X C Set units - C Force window update event X C Set window bitmap - C Set application icon X C Automatically-painted background - C END OF CHART